package com.houweishi.module.staff.service;

import com.houweishi.module.staff.domain.BizStaff;

import java.util.List;

/**
 * 员工管理Service接口
 * 
 * @author houweishi
 * @date 2023-02-21
 */
public interface IBizStaffService 
{
    /**
     * 查询员工管理
     * 
     * @param id 员工管理主键
     * @return 员工管理
     */
    public BizStaff selectBizStaffById(Long id);

    /**
     * 查询员工管理列表
     * 
     * @param bizStaff 员工管理
     * @return 员工管理集合
     */
    public List<BizStaff> selectBizStaffList(BizStaff bizStaff);

    /**
     * 新增员工管理
     * 
     * @param bizStaff 员工管理
     * @return 结果
     */
    public int insertBizStaff(BizStaff bizStaff);

    /**
     * 修改员工管理
     * 
     * @param bizStaff 员工管理
     * @return 结果
     */
    public int updateBizStaff(BizStaff bizStaff);

    /**
     * 批量删除员工管理
     * 
     * @param ids 需要删除的员工管理主键集合
     * @return 结果
     */
    public int deleteBizStaffByIds(Long[] ids);

    /**
     * 删除员工管理信息
     * 
     * @param id 员工管理主键
     * @return 结果
     */
    public int deleteBizStaffById(Long id);

    /**
     * 导入员工数据
     *
     * @param staffList 员工数据列表
     * @param updateSupport 是否更新支持，如果已存在，则进行更新数据
     * @param operName 是否更新支持，如果已存在，则进行更新数据
     * @return 结果
     */
    public String importStaff(List<BizStaff> staffList, Boolean updateSupport, String operName) ;

    /**
     * 修改员工在职状态管理（如果为入职则新增该员工与打卡类型绑定）
     *
     * @param bizStaff 员工管理
     * @return 结果
     */
    public int updateBizStaffStatus(BizStaff bizStaff);

    /**
     * 添加打卡类型
     * @param bizStaff
     */
    void insertUserClockingBinding(BizStaff bizStaff);

}
